﻿using Dapper.FluentMap.Mapping;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Real.Entidad
{
    public class Producto
    {
        public int id { get; set; }
        public string denominacion { get; set; }
        public int categoria_id { get; set; }
        public int proveedor_id { get; set; }
        public int marca_id { get; set; }
        public DateTime fecharegistro { get; set; }
        public int garantia { get; set; }
        public double costo { get; set; }
        public double margen { get; set; }
        public string descripcion { get; set; }
        public int estado_id { get; set; }
        public string codigo { get; set; }
        public double iva { get; set; }
        public double prdbonifuno { get; set; }
        public double prdbonifdos { get; set; }
        public double prdboniftres { get; set; }
        public double prdbonifcuatro { get; set; }
        public double prdbonifcinco { get; set; }
        public double importedescuento { get; set; }
        public double metros { get; set; }
        public virtual Proveedor proveedor { get; set; }
        public virtual Marca marca { get; set; }
        public virtual Categoria categoria { get; set; }
    }

    public class ProductoMap : EntityMap<Producto>
    {
        public ProductoMap()
        {
            Map(x => x.id).ToColumn("prdid", caseSensitive: false);
            Map(x => x.denominacion).ToColumn("prddenominacion", caseSensitive: false);
            Map(x => x.categoria_id).ToColumn("catid", caseSensitive: false);
            Map(x => x.proveedor_id).ToColumn("proid", caseSensitive: false);
            Map(x => x.marca_id).ToColumn("marid", caseSensitive: false);
            Map(x => x.fecharegistro).ToColumn("prdfecharegistro", caseSensitive: false);
            Map(x => x.garantia).ToColumn("prdgarantia", caseSensitive: false);
            Map(x => x.costo).ToColumn("prdcosto", caseSensitive: false);
            Map(x => x.margen).ToColumn("prdmargen", caseSensitive: false);
            Map(x => x.descripcion).ToColumn("prddescripcion", caseSensitive: false);
            Map(x => x.estado_id).ToColumn("estid", caseSensitive: false);
            Map(x => x.codigo).ToColumn("prdcodigo", caseSensitive: false);
            Map(x => x.iva).ToColumn("prdiva", caseSensitive: false);
            Map(x => x.importedescuento).ToColumn("prdimportedesc", caseSensitive: false);
            Map(x => x.metros).ToColumn("prdmetros", caseSensitive: false);
        }
    }
}
